/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bettosimport.negocio;

import com.bettosimport.datos.ComprobanteCompraDAO;
import com.bettosimport.entidades.Comprobante_compra;
import com.bettosimport.entidades.Detalle_compra;
import java.util.ArrayList;

/**
 *
 * @author Programador
 */
public class ComprobanteCompraNeg {

    private static ComprobanteCompraNeg _Instancia;

    private ComprobanteCompraNeg() {
    }

    public static ComprobanteCompraNeg Instancia() {
        if (_Instancia == null) {
            _Instancia = new ComprobanteCompraNeg();
        }
        return _Instancia;
    }

    public ArrayList<Comprobante_compra> listarComprobanteCompra() throws Exception {
        try {
            return ComprobanteCompraDAO.Instancia().listarComprobanteCompra();
        } catch (Exception e) {
            throw e;
        }
    }

    public ArrayList<Detalle_compra> listarDetalleCompra(String cod) throws Exception {
        try {
            return ComprobanteCompraDAO.Instancia().listarDetalleCompra(cod);
        } catch (Exception e) {
            throw e;
        }
    }

    public int guardarCompra(Comprobante_compra c) throws Exception {
        try {
            String xml = "<root><Compra "
                    + "serie='" + c.getSerie() + "' "
                    + "numero='" + c.getNumero() + "' "
                    + "fecha='" + c.getFecha() + "' "
                    + "sub_total='" + c.getSub_total() + "' "
                    + "monto_igv='" + c.getMonto_igv() + "' "
                    + "total='" + c.getTotal() + "' "
                    + "moneda='" + c.getMoneda() + "' "
                    + "proveedor='" + c.getProveedor().getId_prov() + "' "
                    + "tipocomprobante='" + c.getTipocomprobante().getId_tipocomp() + "' "
                    + "usuario='" + c.getUsuario().getId_usu() + "'>";
            for (Detalle_compra det : c.getDetalle()) {
                xml += "<DCompra "
                        + "producto='" + det.getProducto().getId_prod() + "' "
                        + "cantidad='" + det.getCantidad() + "' "
                        + "precio='" + det.getPrecio() + "' "
                        + "importe='" + det.getImporte() + "' />";
            }
            xml += "</Compra></root>";
            return ComprobanteCompraDAO.Instancia().guardarCompra(xml);
        } catch (Exception e) {
            throw e;
        }
    }
}
